Human-machine interfaces (HMI, also known as “user interfaces”) exist in or are produced by many machines and are designed to allow humans to easily and conveniently operate and control the machine so as to utilize it to the full of its capacity and its features. An HMI typically facilitates input of information or commands by a human operator (also referred to as a “user”), allowing the user to manipulate the machine. An HMI typically also offers output, which may be used by the user to get an indication on the effects of the user manipulation of that machine. For example, a modern automobile may have a variety of HMIs, such as, the tachometer, which indicates the speed the vehicle is riding in response to the driver's pressing on the accelerator pedal (or brake pedal), the front panel of a media center, which includes keys and knobs for facilitating choosing between receiving radio broadcasts or playing a CD or a DVD, and displaying the currently playing station (of the radio broadcast) or track or playing time (of the CD or DVD).
Current methods for specifying HMIs may seem insufficient at times to capture the complexity and details of modern user interaction. Current methods for designing HMIs may not allow the designer to view interaction details, their effect on the overall system, and view the system as a whole. Current methods for reviewing HMIs may be insufficient to communicate and discuss the details of alternative designs.
Current methods for analysis and evaluation of HMIs may also be insufficient to capture and understand (in detail) user-interaction patterns, user-preferences, and user expectations. There are no current methods for characterizing and incorporating HMI design patterns into the design process.